//package com.example.JavaWebApi.core.neo4j;
//
//import com.example.JavaWebApi.core.mybatisplusextention.wrapperCreator.ConnectorType;
//import com.example.JavaWebApi.core.mybatisplusextention.wrapperCreator.OperatorType;
//import com.example.JavaWebApi.core.mybatisplusextention.wrapperCreator.model.QueryConditionModel;
//import lombok.Data;
//
//import java.util.*;
//import java.util.function.Consumer;
//
///**
// * @program: lvzhengcao_api
// * @description:
// * @author: 杨泽
// * @create: 2023-11-01 13:38
// */
//@Data
//public class Neo4jQueryWrapper {
//    protected List<QueryConditionModel> conditionModelList=new ArrayList<>();
//    protected List<String> appendSqls=new ArrayList<>();
//    protected List<Neo4jQueryWrapper> andWrapperList=new ArrayList<>();
//    protected List<Neo4jQueryWrapper> orWrapperList=new ArrayList<>();
//    protected HashMap<String,Object> parameters=new HashMap<>();
//    protected HashMap<String,Map<String,Object>> objectMap=new HashMap<>();
//    protected String finalConditionCql="";
//    protected String finalOrderCql="";
//    protected HashMap<String,String> objectCql=new HashMap<>();
//    protected List<String> orderByAsc=new ArrayList<>();
//    protected List<String> orderByDesc=new ArrayList<>();
//    protected Boolean hasBuild=false;
//    protected Integer itemIndex=0;
//    /**
//     * Description: 等于
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:25
//     */
//    public Neo4jQueryWrapper eq(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.Equal);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 等于
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:25
//     */
//    public Neo4jQueryWrapper eq(String column, Object value){
//        return this.eq(true,column,value);
//    }
//    /**
//     * Description: 不等于
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:26
//     */
//    public Neo4jQueryWrapper nq(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.NotEqual);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 不等于
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:26
//     */
//    public Neo4jQueryWrapper nq(String column, Object value){
//        return this.nq(true,column,value);
//    }
//    /**
//     * Description: 大于
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:26
//     */
//    public Neo4jQueryWrapper gt(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.GreaterThan);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//
//    /**
//     * Description: 大于
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:26
//     */
//    public Neo4jQueryWrapper gt(String column, Object value){
//        return this.gt(true,column,value);
//    }
//    /**
//     * Description: 大于等于
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper ge(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.GreaterThanOrEqual);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//
//    /**
//     * Description: 大于等于
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper ge(String column, Object value){
//        return this.ge(true,column,value);
//    }
//    /**
//     * Description: 小于
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper lt(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.LessThan);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 小于
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper lt(String column, Object value){
//        return this.lt(true,column,value);
//    }
//    /**
//     * Description: 小于等于
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper le(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.LessThanOrEqual);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 小于等于
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper le(String column, Object value){
//        return this.le(true,column,value);
//    }
//    /**
//     * Description: 模糊查询
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper like(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.Like);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//
//    /**
//     * Description: 模糊查询
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:27
//     */
//    public Neo4jQueryWrapper like(String column, Object value){
//        return this.like(true,column,value);
//    }
//    /**
//     * Description: 右模糊
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper likeRight(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.LikeRight);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 右模糊
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper likeRight(String column, Object value){
//        return likeRight(true,column,value);
//    }
//    /**
//     * Description: 左模糊
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper likeLeft(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.LikeLeft);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 左模糊
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper likeLeft(String column, Object value){
//        return this.likeLeft(true,column,value);
//    }
//    /**
//     * Description:模糊取反
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper notLike(boolean condition, String column, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,value,ConnectorType.And,OperatorType.NotLike);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description:模糊取反
//     * @param column 查询字段
//     * @param value 值
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper notLike(String column, Object value){
//        return this.notLike(true,column,value);
//    }
//    /**
//     * Description: 包含
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param coll 集合
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper in(boolean condition, String column, Collection<?> coll){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,coll,ConnectorType.And,OperatorType.In);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 包含
//     * @param column 查询字段
//     * @param coll 集合
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:28
//     */
//    public Neo4jQueryWrapper in(String column, Collection<?> coll){
//        return this.in(true,column,coll);
//    }
//    /**
//     * Description: 不包含
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 查询字段
//     * @param coll 集合
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:29
//     */
//    public Neo4jQueryWrapper notIn(boolean condition, String column, Collection<?> coll){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(column,coll,ConnectorType.And,OperatorType.NotIn);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    /**
//     * Description: 不包含
//     * @param column 查询字段
//     * @param coll 集合
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:29
//     */
//    public Neo4jQueryWrapper notIn(String column, Collection<?> coll){
//        return this.notIn(true,column,coll);
//    }
//
//    public Neo4jQueryWrapper label(Boolean condition, String parameterName, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(parameterName,value,ConnectorType.And,OperatorType.Label);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    public Neo4jQueryWrapper label(String parameterName, Object value){
//        return label(true,parameterName,value);
//    }
//
//    public Neo4jQueryWrapper notLabel(Boolean condition, String parameterName, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(parameterName,value,ConnectorType.And,OperatorType.NotLabel);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    public Neo4jQueryWrapper notLabel(String parameterName, Object value){
//        return notLabel(true,parameterName,value);
//    }
//
//    public Neo4jQueryWrapper type(Boolean condition, String parameterName, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(parameterName,value,ConnectorType.And,OperatorType.Type);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    public Neo4jQueryWrapper type(String parameterName, Object value){
//        return type(true,parameterName,value);
//    }
//
//    public Neo4jQueryWrapper notType(Boolean condition, String parameterName, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(parameterName,value,ConnectorType.And,OperatorType.NotType);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    public Neo4jQueryWrapper notType(String parameterName, Object value){
//        return notType(true,parameterName,value);
//    }
//
//    public Neo4jQueryWrapper id(Boolean condition, String parameterName, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(parameterName,value,ConnectorType.And,OperatorType.Id);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//
//    public Neo4jQueryWrapper id(String parameterName, Object value){
//        return id(true,parameterName,value);
//    }
//    public Neo4jQueryWrapper notId(Boolean condition, String parameterName, Object value){
//        if(condition){
//            QueryConditionModel queryConditionModel=createCondition(parameterName,value,ConnectorType.And,OperatorType.NotId);
//            conditionModelList.add(queryConditionModel);
//        }
//        return this;
//    }
//    public Neo4jQueryWrapper notId(String parameterName, Object value){
//        return notId(true,parameterName,value);
//    }
//
//    /**
//     * Description: 直接拼接语句
//     * @param condition 为true拼接条件 false不拼接
//	 * @param sql 拼接语句
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:30
//     */
//    public Neo4jQueryWrapper applySql(boolean condition, String sql){
//        if(condition){
//            appendSqls.add(sql);
//        }
//        return this;
//    }
//
//    /**
//     * Description: 直接拼接语句
//     * @param sql 拼接语句
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:30
//     */
//    public Neo4jQueryWrapper applySql(String sql){
//        return this.applySql(true,sql);
//    }
//
//    public Neo4jQueryWrapper object2CQL(String parameterName, Map<String,Object> map){
//        this.objectMap.put(parameterName,map);
//        return this;
//    }
//    /**
//     * Description: 使用and连接符继续拼接一个条件
//     * @param condition 为true拼接条件 false不拼接
//     * @param queryWrapperConsumer
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:30
//     */
//    public Neo4jQueryWrapper and(boolean condition, Consumer<Neo4jQueryWrapper> queryWrapperConsumer){
//        if(condition){
//            Neo4jQueryWrapper queryWrapper=new Neo4jQueryWrapper();
//            queryWrapperConsumer.accept(queryWrapper);
//            andWrapperList.add(queryWrapper);
//        }
//        return this;
//    }
//
//    /**
//     * Description: 使用and连接符继续拼接一个条件
//     * @param queryWrapperConsumer
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:30
//     */
//    public Neo4jQueryWrapper and(Consumer<Neo4jQueryWrapper> queryWrapperConsumer){
//        return this.and(true,queryWrapperConsumer);
//    }
//    /**
//     * Description: 使用or连接符继续拼接一个条件
//     * @param condition 为true拼接条件 false不拼接
//     * @param queryWrapperConsumer
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:30
//     */
//    public Neo4jQueryWrapper or(boolean condition, Consumer<Neo4jQueryWrapper> queryWrapperConsumer){
//        if(condition){
//            Neo4jQueryWrapper queryWrapper=new Neo4jQueryWrapper();
//            queryWrapperConsumer.accept(queryWrapper);
//            orWrapperList.add(queryWrapper);
//        }
//        return this;
//    }
//    /**
//     * Description: 使用or连接符继续拼接一个条件
//     * @param queryWrapperConsumer
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:30
//     */
//    public Neo4jQueryWrapper or(Consumer<Neo4jQueryWrapper> queryWrapperConsumer){
//        return this.or(true,queryWrapperConsumer);
//    }
//
//    /**
//     * Description: 正序排序
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 排序字段
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:32
//     */
//    public Neo4jQueryWrapper orderByAsc(boolean condition, String column){
//        if(condition){
//            this.orderByAsc.add(column);
//        }
//        return this;
//    }
//    /**
//     * Description: 正序排序
//     * @param column 排序字段
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:32
//     */
//    public Neo4jQueryWrapper orderByAsc(String column){
//        return this.orderByAsc(true,column);
//    }
//    /**
//     * Description: 倒叙排序
//     * @param condition 为true拼接条件 false不拼接
//     * @param column 排序字段
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:32
//     */
//    public Neo4jQueryWrapper orderByDesc(boolean condition, String column){
//        if(condition){
//            this.orderByDesc.add(column);
//        }
//        return this;
//    }
//    /**
//     * Description: 倒叙排序
//     * @param column 排序字段
//     * @return com.example.JavaWebApi.core.neo4j.Neo4jQueryWrapper
//     * @author 杨泽
//     * @date 2023/11/2 11:32
//     */
//    public Neo4jQueryWrapper orderByDesc(String column){
//        return this.orderByDesc(true,column);
//    }
//    /**
//     * Description: 构造器生成语句
//     * @param wrapperIndex 构造器索引
//     * @return java.lang.String
//     * @author 杨泽
//     * @date 2023/11/2 11:33
//     */
//    public String build(Integer wrapperIndex){
//        if(!hasBuild){
//            hasBuild=true;
//            if(wrapperIndex==null){
//                wrapperIndex=0;
//            }
//            StringBuilder stringBuilder=new StringBuilder(" 1=1 ");
//            for(QueryConditionModel conditionModel : conditionModelList){
//                stringBuilder.append(getConnectSql(conditionModel.getConnectorType())
//                        +getOperatorSql(conditionModel.getOperatorType(),
//                        conditionModel.getColumn(),conditionModel.getValue(),wrapperIndex));
//            }
//            for(Map.Entry<String,Map<String,Object>> entry:objectMap.entrySet()){
//                itemIndex++;
//                String cql=convert2String(entry.getValue(),wrapperIndex);
//                objectCql.put(entry.getKey(),cql);
//            }
//            StringBuilder stringBuilder1=new StringBuilder();
//            if(orderByAsc.size()>0||orderByDesc.size()>0){
//                stringBuilder1.append(" order by ");
//                for(String asc : orderByAsc){
//                    itemIndex++;
//                    parameters.put("orderBy"+"_"+wrapperIndex+"_"+itemIndex,asc);
//                    stringBuilder1.append(asc);
//                    stringBuilder1.append(" asc,");
//                }
//                for (String desc :orderByDesc){
//                    itemIndex++;
//                    parameters.put("orderBy"+"_"+wrapperIndex+"_"+itemIndex,desc);
//                    stringBuilder1.append(desc);
//                    stringBuilder1.append(" desc,");
//                }
//                stringBuilder1.deleteCharAt(stringBuilder1.length()-1);
//                stringBuilder1.append(" ");
//                finalOrderCql=stringBuilder1.toString();
//            }
//            for (String sql : appendSqls){
//                stringBuilder.append(sql);
//            }
//            if(andWrapperList.size()>0){
//                stringBuilder.append(" and (");
//                for (Neo4jQueryWrapper andWrapper : andWrapperList){
//                    wrapperIndex++;
//                    stringBuilder.append(andWrapper.build(wrapperIndex));
//                }
//                stringBuilder.append(")");
//            }
//            if(orWrapperList.size()>0){
//                stringBuilder.append(" or (");
//                for (Neo4jQueryWrapper orWrapper : orWrapperList){
//                    wrapperIndex++;
//                    stringBuilder.append(orWrapper.build(wrapperIndex));
//                }
//                stringBuilder.append(")");
//            }
//            mergeParameter();
//            stringBuilder.append(" ");
//            finalConditionCql=stringBuilder.toString();
//        }
//        return finalConditionCql;
//    }
//    private String convert2String(Map<String,Object> hashMap,Integer wrapperIndex){
//        StringBuilder sb=new StringBuilder("{");
//        for(Map.Entry<String,Object> entry :hashMap.entrySet()){
//            sb.append(entry.getKey());
//            sb.append(":");
//            String parameterName=entry.getKey()+"_"+wrapperIndex+"_"+itemIndex;
//            sb.append(getParameterCql(parameterName));
//            sb.append(",");
//            this.parameters.put(parameterName,entry.getValue());
//        }
//        sb.deleteCharAt(sb.length()-1);
//        sb.append("}");
//        return sb.toString();
//    }
//
//    private void mergeParameter(){
//        for (Neo4jQueryWrapper andWrapper : andWrapperList){
//           HashMap<String,Object> subMap=andWrapper.getParameters();
//           for(Map.Entry<String,Object> entry : subMap.entrySet()){
//               parameters.put(entry.getKey(),entry.getValue());
//           }
//        }
//        for (Neo4jQueryWrapper orWrapper : orWrapperList){
//            HashMap<String,Object> subMap=orWrapper.getParameters();
//            for(Map.Entry<String,Object> entry : subMap.entrySet()){
//                parameters.put(entry.getKey(),entry.getValue());
//            }
//        }
//    }
//    private String getConnectSql(ConnectorType connectorType){
//        switch (connectorType){
//            case Or:
//                return " or ";
//            default:
//                return " and ";
//        }
//    }
//
//    private String getOperatorSql(OperatorType operatorType,String column,Object value,Integer wrapperIndex){
//        String sql="";
//        switch (operatorType){
//            case Equal:
//                sql=column+"="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case NotEqual:
//                sql=column+"!="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case LessThan:
//                sql=column+"<"+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case LessThanOrEqual:
//                sql=column+"<="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case GreaterThan:
//                sql=column+">"+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case GreaterThanOrEqual:
//                sql=column+">="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case In:
//                sql=column+" in "+ getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case NotIn:
//                sql=" not "+column+" in "+ getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case Like:
//                sql=column+" contains "+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case NotLike:
//                sql=" not "+column+" contains  "+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case LikeLeft:
//                sql=column+" end with "+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case LikeRight:
//                sql=" not "+column+" end with "+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case Label:
//                sql=getObjectSql(value,operatorType.toString(),wrapperIndex)+" IN labels("+column+")";
//                break;
//            case NotLabel:
//                sql=" not "+getObjectSql(value,operatorType.toString(),wrapperIndex)+" IN labels("+column+")";
//                break;
//            case Type:
//                sql=" type("+column+")="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case NotType:
//                sql=" not type("+column+")="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case Id:
//                sql=" id("+column+")="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            case NotId:
//                sql=" not id("+column+")="+getObjectSql(value,operatorType.toString(),wrapperIndex);
//                break;
//            default:
//        }
//        return sql;
//    }
//
//    private String getObjectSql(Object value,String parameterName,Integer wrapperIndex){
//        String sql;
//        Class<?> classes=value.getClass();
//        if(Collection.class.isAssignableFrom(classes)){
//            Collection<?> collection=(Collection<?>)value;
//            if(collection.isEmpty()){
//                return "[]";
//            }
//            else {
//                StringBuilder stringBuilder=new StringBuilder("[");
//                sql="[";
//                for(Object item : collection){
//                    String param=parameterName+"_"+wrapperIndex+"_"+itemIndex;
//                    itemIndex++;
//                    parameters.put(param,item);
//                    //stringBuilder.append(getValueSql(item));
//                    stringBuilder.append(getParameterCql(param));
//                    stringBuilder.append(",");
//                }
//                stringBuilder.deleteCharAt(stringBuilder.length()-1);
//                stringBuilder.append("]");
//                sql=stringBuilder.toString();
//            }
//        }
//        else {
//            String param=parameterName+"_"+wrapperIndex+"_"+itemIndex;
//            parameters.put(param,value);
//            sql=getParameterCql(param);
//            itemIndex++;
//        }
//        return sql;
//    }
//    private String getParameterCql(String parameterName){
//        return "$"+parameterName;
//    }
//
//    private QueryConditionModel createCondition(String column,Object value,ConnectorType connectorType,OperatorType operatorType){
//        QueryConditionModel queryConditionModel=new QueryConditionModel();
//        queryConditionModel.setColumn(column);
//        queryConditionModel.setValue(value);
//        queryConditionModel.setConnectorType(connectorType);
//        queryConditionModel.setOperatorType(operatorType);
//        return queryConditionModel;
//    }
//}